format 8 
epsilon basic 1.0e-16 
epsilon uniform 1.0e-16 
epsilon findeigen 1.0e-16 
epsilon results 1.0e-18 
epsilon sorteigen 1.0e-16 


* Functions & variables part:
func gdmm() 
if ( (g<#(PK2)) and (#(PK2)<b) )
1
else
0
end
end

func gdMm() 
if ( (#(PK2)>=b) )
1
else
0
end
end

func gdtrn() 
if ( #(PK2) > 0 )
1
else
0
end
end

func gdtRN() 
if ( #(PK2) > 0 )
0
else
1
end
end


bind 
N   7
N1   N-1
K   5
lam   7
mu   1/(0.25)
lamD   0.03
lam0   0.03
mu0   1
b   4
g   2
end


srn model1(mum, lamIn, muIn, muM, muD)  
  * == PLACE == 
  Pidl 0
  PLU N1
  Ppr 1
  Pqu 0
  PK1 K
  Pins 0
  Pdec 0
  Pmm 0
  Pmm1 0
  Pmr 0
  PMm 0
  Prn 0
  Pd1 0
  Pd2 0
  PK2 0
  PMr 0
  end
  * == Timed Transitions == 
  Tpr ind mu 
  Tmm ind mum 
  TPI ind lamIn 
  Tins ind muIn 
  TLU ind lam 
  Tf ind lam0 
  Tmr ind mu0 
  TMm ind muM 
  Td placedep PK1 lamD 
  TMr ind muD 
  end
  * == Immediate Transitions ==  
  tNA ind 0.5 priority 10 
  tmm ind 0.5 guard gdmm() priority 20 
  tMm ind 0.5 guard gdMm() priority 30 
  tint ind 0.5 priority 10 
  tmm2 ind 0.5 priority 10 
  trn ind 0.5 guard gdtrn() priority 10 
  td1 ind 0.5 priority 10 
  td2 ind 0.5 priority 10 
  tRN ind 0.5 guard gdtRN() priority 10 
  tDF ind 0.5 priority 20 
  end
  * == ARC == 
  * Input Arcs 
  Ppr Tpr 1
  Pqu tint 1
  PLU TLU 1
  Pidl tint 1
  Ppr TPI 1
  Pins Tins 1
  Pdec tNA 1
  Pdec tmm 1
  Pdec tMm 1
  Pmm Tmm 1
  Pmm1 tmm2 1
  Ppr Tf 1
  Pmr Tmr 1
  PMm TMm 1
  Prn trn 1
  Ppr Td 1
  Pd1 td1 1
  Pd2 td2 1
  PK1 Td 1
  PK2 tmm2 1
  PMr TMr 1
  Prn tRN 1
  PK2 tDF K
  Pd2 tDF 1
  end
  * Output Arcs 
  Tpr Pidl 1
  tint Ppr 1
  TLU Pqu 1
  Tpr PLU 1
  TPI Pins 1
  Tins Pdec 1
  tNA Ppr 1
  tmm Pmm 1
  Tmm Pmm1 1
  tmm2 Ppr 1
  tmm2 PK1 1
  Tf Pmr 1
  Tmr Ppr 1
  tMm PMm 1
  TMm Prn 1
  trn Prn 1
  trn PK1 1
  Td Pd1 1
  td1 Pd2 1
  td2 Ppr 1
  td1 PK2 1
  TMr PK1 K
  tRN Ppr 1
  tDF PMr 1
  TMr Prn 1
  end
  * Inhibtor Arcs 
end


echo *********************************************************************** 
echo *********  Outputs asked for the model: model1 ************** 


*func Func() 
*  Rate(Tpr)
*end
*var SS_Var srn_exrss(model1; Func; 1/2, 1/15, 1/.5, 1/5, 1/40) 
*echo Steady-state throughput of Tpr 

expr tput(model1, Tpr; 1/2, 1/15, 1/.5, 1/5, 1/40) 
expr SS_Var


end


